// 'use strict';

var newObj = Object.create(null);
Object.defineProperties(newObj, {
    name: {
        value: 'Monkey'
    },
    age: {
        value: 24
    }
});

var descriptor = Object.getOwnPropertyDescriptor(newObj, 'name');
console.log(descriptor);
// console.log(newObj.age);
// console.log(newObj.name);


// var obj3 = {
//     name: 'xiaoming',
//     age: 23
// };

// var newObj3 = Object.create(obj3);
// newObj3.name = 'xiaohua';
// console.log(obj3.name);
// console.log(newObj3.name);


// var ar = ['one', 'two', 'one', 'two'];
// var n = ar.indexOf('one');
// console.log(n);


// console.log(Array.isArray([]));
// console.log(Array.isArray({}));

// function test6() {
//     console.log(Array.prototype.slice.call(arguments));
// }
// test6(1, 2);

// var obj = {
//     name: 'xiaoming',
//     getName: function() {
//         return this.name;
//     }
// }

// var obj2 = {
//     name: 'fjq'
// };

// var nameFn = obj.getName;

// var result = nameFn.apply(obj2);
// console.log(result);


//===============================================
// var a = 1;

// function test() {
//     console.log(a);
//     let a = 2;
// }
// test();

// var arr = [],
//     arr2 = {};
// console.log(arr instanceof Object);


// console.log(arr instanceof Array);
// console.log(typeof(arr) === typeof(arr2));


//======================================================

// function Testable(target) {
// 	target.prototype.c = function(num) {
// 		console.log('num:' + num);
// 	};
// }

// @Testable
// class MyComponent {
// 	constructor(a, b) {
// 		this.a = a;
// 		this.b = b;
// 	}
// }

// var mycomponent = new MyComponent(2, 2);
// console.log(mycomponent.a);
// console.log(mycomponent.b);


// var SystemJS = require('systemjs');

// SystemJS.import('public/app.js');